package zzs.generalframework.office.core.excel.row;

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @title
 * @description
 * @project zzs-office
 * @package zzs.generalframework.office.core.excel.row
 * @author zzs
 * @date 2018年1月30日
 * @version 1.0
 */
public class RowContext
{

	private Logger logger = LoggerFactory.getLogger(RowContext.class);

	/**
	 * 创建行对象
	 * 
	 * @param sheet
	 * @param rowNum
	 * @return
	 */
	public Row createRow(Sheet sheet, int rowNum)
	{
		logger.info("====创建Row对象开始====");
		logger.debug("====创建Row对象,入参:Sheet=[{}],int=[{}]====", sheet, rowNum);
		Row row = sheet.getRow(rowNum);
		logger.debug("====创建Row对象,出参:Row=[{}]====", row);
		logger.info("====创建Row对象结束====");
		return row;
	}

	/**
	 * 获取行对象
	 * 
	 * @param sheet
	 * @param rowNum
	 * @return
	 */
	public Row getRow(Sheet sheet, int rowNum)
	{
		logger.info("====获取Row对象开始====");
		logger.debug("====获取Row对象,入参:Sheet=[{}],int=[{}]====", sheet, rowNum);
		Row row = sheet.getRow(rowNum);
		logger.debug("====获取Row对象,出参:Row=[{}]====", row);
		logger.info("====获取Row对象结束====");
		return row;
	}

	/**
	 * 获取该行行号
	 * 
	 * @param row
	 * @return
	 */
	public int getRowNum(Row row)
	{
		logger.info("====获取Row对象开始====");
		logger.debug("====获取Row对象,入参:Row=[{}]====", row);
		int rowNum = row.getRowNum();
		logger.debug("====获取Row对象,出参:int=[{}]====", rowNum);
		logger.info("====获取Row对象结束====");
		return rowNum;
	}

	/**
	 * 获取最后一列列号
	 * 
	 * @param row
	 * @return
	 */
	public int getColumnSize(Row row)
	{
		logger.info("====获取某行列数开始====");
		logger.debug("====获取某行列数,入参:Row=[{}]====", row);
		int columnSize = row.getLastCellNum();
		logger.debug("====获取某行列数,出参:int=[{}]====", columnSize);
		logger.info("====获取某行列数结束====");
		return columnSize;
	}

}
